<?php


namespace app\api\controller\v1;


use app\api\service\WxNotify;
use app\validate\api\IDMustBePositiveInt;
use think\Exception;
use app\api\service\Pay as PayService;

class Pay
{
    /**
     * 请求预订单信息
     *
     * @param string $id
     *
     * @return array
     * @throws Exception
     * @throws \WxPayException
     */
    public function getPreOrder($id = ''): array
    {
        (new IDMustBePositiveInt())->goCheck();
        $pay = new PayService($id);
        return $pay->pay();
    }

    public function receiveNotify(){
        //通知频率为 15/15/30/180/1800/1800/1800/3600 单位 秒
        // 此路由特点: POST; xml格式:不会携带参数

        $xmlData = file_get_contents('php://input');

        return curl_post_raw("http://localhost/zerg/public/index.php/v1/pay/re_notify",$xmlData);
    }

    public function redirectNotify(){
        //1  检查库存量
        //2  更新这个订单的status状态
        //3 减库存
        // 如果成功处理，我们返回微信成功处理的信息，否则，我们需要返回没有成功的结果
        $notify = new WxNotify();
        $config = new \WxPayConfig();
        $notify->Handle($config);
    }


}